/*
 * ListenerNuevoCd.java
 *
 * Created on 28 de octubre de 2005, 1:22
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package fmap.gui.actionListener;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import fmap.model.Cat;
import javax.swing.JOptionPane;
import fmap.DatosCompartidos;
import fmap.gui.JFrameAdminCat;
import fmap.gui.JFrameIcons;
import java.util.Vector;
import javax.swing.JTextPane;

/**
 *
 * @author javi
 */
public class ListenerJFrameNewMapF implements ActionListener
{
    
    /** Objeto referencia al formulario principal */
    JFileChooser fDialog;
    JTextField txtExaminar;
    JTextField txtTitCd;
    Cat cat;
    JComboBox jComboBox;
    fmap.actions.mapF.NewMapF.NewMapFAction newMapF;
    JTextPane desc;
    
    /** Creates a new instance of ListenerNuevoCd */
    public ListenerJFrameNewMapF ()
    {
    }
    
    
    /** Creates a new instance of ListenerNuevoCd */
    public ListenerJFrameNewMapF (JFileChooser _fDialog, JTextField _txtExaminar, JTextField _txtTitCd, JComboBox _jComboBox1, JTextPane _desc)
    {
        fDialog                = _fDialog;
        txtExaminar            = _txtExaminar;
        txtTitCd               = _txtTitCd;
        jComboBox              = _jComboBox1;
        desc                   = _desc;
    }
    
    
    public void actionPerformed (ActionEvent ae)
    {
        /** Ahora mismo este evento solo se puede producir al pulsar un boton */
        JButton button = (JButton)ae.getSource ();
        
        
        
        
        /** Si hemos pulsado el boton "Abrir" */
        if(button.getActionCommand ().equals ("cancelar"))
        {
            DatosCompartidos.getJFrameNewMapF ().dispose ();
        }
        else if(button.getActionCommand ().equals ("examinar"))
        {
            int returnVal = fDialog.showOpenDialog ( DatosCompartidos.getJFrameNewMapF () );
            //Aceptamos abrir un directorio desde el examinador de ficheros (JFileChooser)
            if(returnVal == JFileChooser.APPROVE_OPTION)
            {
                txtExaminar.setText (fDialog.getSelectedFile ().getAbsolutePath ());
            }
        }
        else if(button.getActionCommand ().equals ("guardar"))
        {
            if( txtTitCd.getText ().equals ("") )
            {
                /** Validamos la entrada de datos para una nueva coleccion */
                JOptionPane.showMessageDialog (DatosCompartidos.getJFrameNewMapF (),
                        "Debe cubrir el titulo del mapa de ficheros",
                        "ERROR",
                        JOptionPane.ERROR_MESSAGE);
                txtTitCd.requestFocus ();
            }
            else if( txtExaminar.getText ().trim ().equals ("")  )
            {
                /** Validamos la entrada de datos para una nueva coleccion */
                JOptionPane.showMessageDialog (DatosCompartidos.getJFrameNewMapF (),
                        "Debe seleccionar el dispositivo a mapear",
                        "ERROR",
                        JOptionPane.ERROR_MESSAGE);
                txtExaminar.requestFocus ();
            }
            else
            {
                DatosCompartidos.getJFrameNewMapF ().desActiveComponents ();
                
                cat = (Cat)jComboBox.getSelectedItem ();
                
                /** Lanzamos un hilo para dar del alta el cd, desde el modificaremos la barra de progreso y el texto de la label de estado */
                newMapF = new fmap.actions.mapF.NewMapF.NewMapFAction ();
                newMapF.NewMapFAction ( txtExaminar.getText (), txtTitCd.getText (), cat.getId (), DatosCompartidos.getJFrameNewMapF ().getIcon (), desc.getText () );
                
                DatosCompartidos.getJFrameNewMapF ().setTitle ( "Fmap - Guardando...");
            }
            
            DatosCompartidos.getJTablePersonal ().setData ( new Vector () );
        }
        else if( button.getActionCommand ().equals ("openImagen") )
        {
            new JFrameIcons ("mapF");
        }
        else if( button.getActionCommand ().equals ("adminCatMapF") )
        {
            new JFrameAdminCat ();
        }
        
    }
    
    
}